Paste from Slack
対応範囲
コピペするとどうしても混入する絵文字やリプライ数などの雑音に阻害されず,メッセージを抽出可能
大量のメッセージも一括で処理
共有機能や,引用部分の内側のコンテンツと外側のコンテンツを区別することはできず,単調な記述になる
写真やファイルなども反映されない
利用方法
このページの一番下のスクリプトを読み込むと,slackロゴマークのボタンが設置される
https://gyazo.com/07365b464aef2ef456b725db4d7cd7ee
注意点
コピーするとき,ユーザーのアイコン画像まで含むように選択してください
サンプル
https://gyazo.com/7bab66317332cd074a96ee787197919a
今回作成したツールの出力
Yuki 13:27
Yuki 13:27
bold italic strike link
ordered list
unordered list
quote
inline code
snippet
Yuki 13:27
share
Yuki
bold italic strike link
ordered list
unordered list
quote
inline code
もっと表示する
for-debug への投稿 | 昨日の13:27 | メッセージを確認する
出力ここまで
そのままの場合
Yuki
13:27
:スマイル:
1
Yuki
13:27
bold italic strike link
ordered list
unordered list
quote
inline code
snippet
:両目:
1
Yuki
13:27
share
Yuki
bold italic strike link
ordered list
unordered list
quote
inline code
もっと表示する
for-debug への投稿 | 昨日の13:27 | メッセージを確認する
3 件の返信
最終返信: 12時間前スレッドを表示する
code:script.js
scrapbox.PageMenu.addMenu({
title: 'slack',
});
scrapbox.PageMenu('slack').addItem({
title: 'from thread',
onClick: () => {
const data = prompt("thread からドラッグ&コピー").replaceAll("\r", "");
const encoded = encodeURIComponent(replacer(thread, data));
location.search += (location.search ? "&" : "?") + "body=" + encoded;
}
});
scrapbox.PageMenu("slack").addItem({
title: "from channel",
onClick: () => {
const data = prompt("channel からドラッグ&コピー").replaceAll("\r", "");
const encoded = encodeURIComponent(replacer(channel, data));
location.href += "?body=" + encoded;
}
});
function replacer(regex, str) {
let m, result = "";
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
let name = "", time = "", body = "";
// The result can be accessed through the m-variable.
m.forEach((match, groupIndex) => {
console.log(match);
switch (groupIndex) {
case 0:
break;
case 1:
name = match || "";
break;
case 2:
time = match || "";
break;
case 3:
body = match || "";
break;
default:
break;
}
});
result += ${name}${name ? " " : ""}${time}\n>${body.split("\n").join("\n>")}\n;
}
return result;
}